home *** CD-ROM | disk | FTP | other *** search
/ QRZ! Ham Radio 8 / QRZ Ham Radio Callsign Database - Volume 8.iso / pc / files / mac / proj_a1.hqx / Project Mac - A1 / code2.bas < prev    next >
BASIC Source File  |  1987-11-14  |  3KB  |  203 lines

  1. PRINT "Software by: Bob Giese, N5KXN"
  2. PRINT "                     P. O. Box 7681"
  3. PRINT "                     Houston, TX 77270"
  4. COMMON L$,R,K
  5. L$="QWERTYUIOPASDFGHJKLZXCVBNMAEIOST"
  6. P6=0
  7. S$=""
  8. WAVE 0,SIN
  9. CLEAR
  10. PRINT
  11. PRINT "Control this program from the CODE pulldown menu."
  12. FOR I=1 TO 500:F=SIN(I):NEXT I 'Wait a bit
  13. F=770 ' FREQUENCY IN Hz.
  14. V=127 ' relative volume
  15. W1=13
  16. D1=20/W1
  17. D3=1.3*D1
  18. D=D1/1000 : D2=3*D1
  19. P2=D1 
  20. P3=3*P2
  21. MENU 6,0,1,"CODE"
  22. MENU 6,1,1,"5 letter words"
  23. MENU 6,2,1,"File input"
  24. MENU 6,3,1,"User input"
  25. MENU 6,4,1,"Change speed"
  26. MENU 6,5,1,"Change tone"
  27. 'MENU 6,6,1,"Change volume"
  28.  
  29. start:
  30. CLS
  31. MENU ON
  32. ON MENU GOSUB react
  33.  
  34. loop:
  35. GOTO loop
  36.  
  37. react:
  38. IF MENU(0)<>6 THEN RETURN
  39. ON MENU(1) GOSUB random,file,words,speed,tone
  40. RETURN
  41.  
  42. words:
  43. MENU
  44. PRINT "ENTER WORDS TO SEND";
  45. INPUT S$
  46.  
  47. go:
  48. FOR I=1 TO LEN(S$)
  49. A$=UCASE$(MID$(S$,I,1) )
  50. GOSUB asciitocode
  51. PRINT " ";A$;"                       ";B$
  52. FOR J=1 TO LEN(B$)
  53. IF MID$(B$,J,1) ="." THEN GOSUB dot
  54. IF MID$(B$,J,1) ="-" THEN GOSUB dash
  55. IF MID$(B$,J,1)=" " THEN GOSUB space
  56. NEXT J
  57. NEXT I
  58. RETURN
  59.  
  60. dot:
  61. SOUND F,P2,V,0 ' BEEP P1,P2
  62. SOUND 99999!,D1,0,0 'WAIT D1
  63. RETURN
  64.  
  65. dash:
  66. SOUND F,P3,V,0 ' BEEP P1,P3
  67. SOUND 99999!,D1,0,0 'WAIT D1
  68. RETURN
  69.  
  70. space:
  71. SOUND 99999!,D3,0,0 'WAIT D3
  72. RETURN
  73.  
  74. asciitocode:
  75. IF A$="A" THEN B$=".- "
  76. IF A$="B" THEN B$="-... "
  77. IF A$="E" THEN B$=". "
  78. IF A$="N" THEN B$="-. "
  79. IF A$="S" THEN B$="... "
  80. IF A$="O" THEN B$="--- "
  81. IF A$="C" THEN B$="-.-. "
  82. IF A$="D" THEN B$="-.. "
  83. IF A$="F" THEN B$="..-. "
  84. IF A$="G" THEN B$="--. "
  85. IF A$="H" THEN B$=".... "
  86. IF A$="I" THEN B$=".. "
  87. IF A$="J" THEN B$=".--- "
  88. IF A$="K" THEN B$="-.- "
  89. IF A$="L" THEN B$=".-.. "
  90. IF A$="M" THEN B$="-- "
  91. IF A$="P" THEN B$=".--. "
  92. IF A$="Q" THEN B$="--.- "
  93. IF A$="R" THEN B$=".-. "
  94. IF A$="V" THEN B$="...- "
  95. IF A$="U" THEN B$="..- "
  96. IF A$="W" THEN B$=".-- "
  97. IF A$="X" THEN B$="-..- "
  98. IF A$="Y" THEN B$="-.-- "
  99. IF A$="Z" THEN B$="--.. "
  100. IF A$=" " THEN B$="    "
  101. IF A$="T" THEN B$="- "
  102. IF A$="1" THEN B$=".---- "
  103. IF A$="2" THEN B$="..--- "
  104. IF A$="3" THEN B$="...-- "
  105. IF A$="4" THEN B$="....- "
  106. IF A$="5" THEN B$="..... "
  107. IF A$="6" THEN B$="-.... "
  108. IF A$="7" THEN B$="--... "
  109. IF A$="8" THEN B$="---.. "
  110. IF A$="9" THEN B$="----. "
  111. IF A$="0" THEN B$="----- "
  112. IF A$="?" THEN B$="..--.."
  113. IF A$="." THEN B$=".-.-.-"
  114. IF A$="<" THEN B$="--..--"
  115. IF A$="," THEN B$="--..--"
  116. IF A$="-" THEN B$="-...- "
  117. IF A$="/" THEN B$="-..-. "
  118. SOUND 99999!,D1,0,0 'WAIT D3' IF W1<15 THEN WAIT (15-W1)*(1000/W1)
  119. RETURN
  120.  
  121. random:
  122. MENU ' RANDOM SEQUENCE GENERATOR
  123. L$="QWERTYUIOPASDFGHJKLZXCVBNMAEIOST"
  124. S$=""
  125. K=INT(TIMER/3) MOD 47
  126. FOR I=1 TO K
  127.      J=RND(1)
  128. NEXT I
  129. FOR I=1 TO 5
  130.       R=RND(1)
  131.       P=INT(R*32+1)
  132.       S$=S$+MID$(L$,P,1)
  133. NEXT I
  134. PRINT : PRINT : PRINT
  135. GOSUB go
  136. IF MENU(1) <> 1 THEN GOTO start
  137. GOTO random
  138.  
  139. speed:
  140. MENU
  141. CLS
  142. PRINT "OLD SPEED IS ";W1; " WORDS PER MINUTE."
  143. PRINT "ENTER WORDS PER MINUTE(1-99)";
  144. INPUT W1
  145. IF W1<1 THEN speed
  146. IF W1>100 THEN speed
  147. D1=20/W1
  148. D3=1.3*D1
  149. D2=3*D1
  150. P1 = F
  151. P2=D1
  152. P3=3*P2
  153. CLS
  154. RETURN
  155.  
  156. tone:
  157. MENU
  158. CLS
  159. PRINT "OLD TONE IS";F;
  160. PRINT "ENTER NEW TONE";
  161. INPUT F
  162. IF F<10 THEN tone
  163. IF F>5000 THEN tone
  164. CLS
  165. RETURN
  166.  
  167. volume:
  168. MENU ' volume menu not working
  169. CLS
  170. PRINT "OLD VOLUME IS";V;
  171. PRINT "ENTER NEW VOLUME";
  172. INPUT V
  173. IF V<1 THEN volume
  174. IF V>255 THEN volume
  175. CLS
  176. RETURN
  177.  
  178. restart:
  179. CLS
  180. PRINT"File ";F$;" does not exist."
  181. GOTO pfile
  182.  
  183. file:
  184. MENU
  185. CLS
  186.  
  187. pfile:
  188. PRINT "ENTER FILE NAME";
  189. INPUT F$
  190. IF LEN(F$)<1 THEN GOTO start
  191. ON ERROR GOTO restart
  192. OPEN F$ FOR INPUT AS #1
  193. WHILE NOT EOF(1)
  194.       INPUT #1,S$
  195.        GOSUB go
  196. WEND
  197. CLOSE #1
  198. RETURN
  199.  
  200.      END
  201.  
  202.  
  203.